/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Servlets;

import Entidades.EntCliente;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import Entidades.EntUsuario;
import Negocio.NCliente;
import Negocio.NUsuario;
import java.util.List;

/**
 *
 * @author sala115
 */
public class Maestro extends HttpServlet {

    String edad;

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        EntUsuario usuario = new EntUsuario();

        usuario.setIdentificacion(request.getParameter("Identificacion"));
        usuario.setContrasena(request.getParameter("Contrasena"));

        String clave = request.getParameter("Codigo");


        usuario.setNombre(request.getParameter("Nombre"));
    usuario.setApellidoUno(request.getParameter("ApellidoUno"));
        usuario.setApellidoDos(request.getParameter("ApellidoDos"));
        usuario.setTipodeusuario(request.getParameter("Tipodeusuario"));
        usuario.setPreguntaSecreta(request.getParameter("PreguntaSecreta"));
        usuario.setRespuestaSecreta(request.getParameter("RespuestaSecreta"));
        usuario.setCorreo(request.getParameter("Correo"));

        //cliente



        EntCliente cliente = new EntCliente();

        String clavecli = request.getParameter("codigo");
        String clavecli2 = request.getParameter("numdoc");

        cliente.setCodigo(request.getParameter("codigo"));
        cliente.setTipocliente(request.getParameter("tipocliente"));
        cliente.setTipoDocumento(request.getParameter("tipodoc"));
        cliente.setNumero(request.getParameter("numdoc"));
        cliente.setNombres(request.getParameter("nombres"));
        cliente.setApellidos(request.getParameter("apellidos"));
        cliente.setSexo(request.getParameter("sexo"));
        cliente.setFechaNaci(request.getParameter("fechanaci"));
        cliente.setTipoPlan(request.getParameter("tipoPlan"));
        cliente.setDepartamento(request.getParameter("departamento"));
        cliente.setCiudad(request.getParameter("ciudad"));
        cliente.setBarrio(request.getParameter("barrio"));
        cliente.setDireccion(request.getParameter("direccion"));
        cliente.setTelefono(request.getParameter("telefono"));
        cliente.setEdad(request.getParameter("edad"));
        cliente.setCelular(request.getParameter("celular"));
        cliente.setProfesion(request.getParameter("profesion"));
        cliente.setEmail(request.getParameter("email"));
        cliente.setDocumentoResponsable(request.getParameter("docres"));
        cliente.setNombreResponsable(request.getParameter("nombreResponsable"));




        int accion = Integer.parseInt(request.getParameter("accion"));
        System.out.println("******:" + accion);
        String urlRedireccion = "";
        boolean isResponse = false;
        switch (accion) {
            case 0:
                System.out.println("Entttttttttttooooooooo:");
                String resultadoAutentico = new NUsuario().autenticar(usuario);
                System.out.println("ResultadoAutentico******:" + resultadoAutentico);
                if (resultadoAutentico.equals("1")) {
                    request.setAttribute("logueo", "1");
                    urlRedireccion = "./Menu.jsp";

                } else {
                    request.setAttribute("logueo", "0");
                    urlRedireccion = "./index.jsp";
                }
                break;
            case 1:

                break;
            case 2:
                List<EntUsuario> Usuarios = new NUsuario().listarUsuarios();
                isResponse = true;
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();

                out.println("<HTML>");
                out.println("<HEAD><TITLE>Listar</TITLE></HEAD>");
                out.println("<BODY>");
                out.println("<div>");
                out.println("   <table>");
                out.println("       <tr>");
                out.println("           <td>");
                out.println("           Usuario");
                out.println("           </td>");
                out.println("           <td>");
                out.println("           Clave");
                out.println("           </td>");
                out.println("       </tr>");
                for (int i = 0; i < Usuarios.size(); i++) {
                    EntUsuario user = Usuarios.get(i);
                    out.println("       <tr>");
                    out.println("       <td>");
                    out.println("" + user.getIdentificacion());
                    out.println("       </td>");
                    out.println("       <td>");
                    out.println("" + user.getContrasena());
                    out.println("       </td>");
                    out.println("       </tr>");
                }
                out.println("   </table>");
                out.println("</div>");
                out.println("</BODY></HTML>");
                break;
            case 3:
                int resultadoRegistrarUsuario = new NUsuario().registrarUsuario(usuario);
                request.setAttribute("registro", "" + resultadoRegistrarUsuario);
                urlRedireccion = "./index.jsp";
                usuario.setIdentificacion("");
                usuario.setContrasena("");
                usuario.setNombre("");
                usuario.setApellidoUno("");
                usuario.setApellidoDos("");
                usuario.setTipodeusuario("");
                usuario.setPreguntaSecreta("");
                usuario.setRespuestaSecreta("");
                usuario.setCorreo("");
                break;
            case 4:
                EntUsuario buscar = new NUsuario().consultarUsuario(clave);
                request.setAttribute("buscar", buscar);
                request.setAttribute("consulto", 1);
                urlRedireccion = "./Menu.jsp";
                System.out.println(clave);
                if (buscar != null) {
                    System.out.println(clave + buscar.getIdentificacion() + "Nombre" + buscar.getNombre() + buscar.getApellidoUno());
                }
                break;

            case 5:
                int Modificarusuario = new NUsuario().Modificar(usuario);
                request.setAttribute("registromodificar", "" + Modificarusuario);
                System.out.println(Modificarusuario + "*******************");
                usuario.setIdentificacion("");
                usuario.setContrasena("");
                usuario.setNombre("");
                usuario.setApellidoUno("");
                usuario.setApellidoDos("");
                usuario.setTipodeusuario("");
                usuario.setPreguntaSecreta("");
                usuario.setRespuestaSecreta("");
                usuario.setCorreo("");
                urlRedireccion = "./Menu.jsp";
                break;

            case 6:
                int eliminar = new NUsuario().Eliminar(usuario);
                request.setAttribute("registroeliminar", "" + eliminar);
                System.out.println(eliminar + "*******************");
                urlRedireccion = "./Menu.jsp";
                usuario.setIdentificacion("");
                usuario.setContrasena("");
                usuario.setNombre("");
                usuario.setApellidoUno("");
                usuario.setApellidoDos("");
                usuario.setTipodeusuario("");
                usuario.setPreguntaSecreta("");
                usuario.setRespuestaSecreta("");
                usuario.setCorreo("");
                break;

            case 11:
                response.setContentType("text/html");
                out = response.getWriter();
                List<EntUsuario> lista = new NUsuario().listarUsuarios();

                if (lista == null || (lista != null && lista.size() <= 0)) {
                    out.println("<h1>no existen datos </h1>");
                } else {
                    out.println("<HTML>");
                    out.println("<HEAD><TITLE>Listar</TITLE></HEAD>");
                    out.println("<BODY>");
                    out.println("<div>");
                    out.println("   <table>");
                    out.println("       <tr>");
                    out.println("           <td>");
                    out.println("           Usuario");
                    out.println("           </td>");
                    out.println("           <td>");
                    out.println("           Clave");
                    out.println("           </td>");
                    out.println("       </tr>");
                    for (int i = 0; i < lista.size(); i++) {
                        EntUsuario user = lista.get(i);
                        out.println("       <tr>");
                        out.println("       <td>");
                        out.println("" + user.getIdentificacion());
                        out.println("       </td>");
                        out.println("       <td>");
                        out.println("" + user.getContrasena());
                        out.println("       </td>");
                        out.println("       </tr>");
                    }
                    out.println("   </table>");
                    out.println("</div>");
                    out.println("</BODY></HTML>");
                    isResponse = true;
                }

                break;
            case 12:
                int resultadoRegistrarCliente = new NCliente().registrarCliente(cliente);
                request.setAttribute("registroCliente", "" + resultadoRegistrarCliente);
                urlRedireccion = "./Menu.jsp";
                cliente.setCodigo("");
                cliente.setTipocliente("");
                cliente.setTipoDocumento("");
                cliente.setNumero("");
                cliente.setNombres("");
                cliente.setApellidos("");
                cliente.setSexo("");
                cliente.setFechaNaci("");
                cliente.setTipoPlan("");
                cliente.setDepartamento("");
                cliente.setCiudad("");
                cliente.setBarrio("");
                cliente.setDireccion("");
                cliente.setEdad("");
                cliente.setNombreResponsable("");
                cliente.setDocumentoResponsable("");
                cliente.setCelular("");
                cliente.setProfesion("");
                cliente.setEmail("");

                break;
            case 13:

                int ModificarCliente = new NCliente().Modificar(cliente);
                request.setAttribute("modificoCliente", "" + ModificarCliente);

                cliente.setCodigo("");
                cliente.setTipocliente("");
                cliente.setTipoDocumento("");
                cliente.setNumero("");
                cliente.setNombres("");
                cliente.setApellidos("");
                cliente.setSexo("");
                cliente.setFechaNaci("");
                cliente.setTipoPlan("");
                cliente.setDepartamento(" ");
                cliente.setCiudad("");
                cliente.setBarrio("");
                cliente.setDireccion("");
                cliente.setEdad("");
                cliente.setNombreResponsable("");
                cliente.setDocumentoResponsable("");
                cliente.setCelular("");
                cliente.setProfesion("");
                cliente.setEmail("");

                urlRedireccion = "./Menu.jsp";
                break;
            case 14:

                int eliminarCliente = new NCliente().Eliminar(cliente);
                request.setAttribute("eliminoCliente", "" + eliminarCliente);

                urlRedireccion = "./Menu.jsp";
                cliente.setCodigo("");
                cliente.setTipocliente("");
                cliente.setTipoDocumento("");
                cliente.setNumero("");
                cliente.setNombres("");
                cliente.setApellidos("");
                cliente.setSexo("");
                cliente.setFechaNaci("");
                cliente.setTipoPlan("");
                cliente.setDepartamento("");
                cliente.setCiudad("");
                cliente.setBarrio("");
                cliente.setDireccion("");
                cliente.setEdad("");
                cliente.setNombreResponsable("");
                cliente.setDocumentoResponsable("");
                cliente.setCelular("");
                cliente.setProfesion("");
                cliente.setEmail("");
                break;
            case 15:
                EntCliente buscarCliente = new NCliente().consultarCliente(clavecli);
                request.setAttribute("buscarCliente", buscarCliente);
                request.setAttribute("consultoCliente", 1);
                urlRedireccion = "./Menu.jsp";
                System.out.println("'''''''''''''''''''''''''''''''''''''''''''" + clavecli);
                if (buscarCliente != null) {

                    System.out.println(clavecli2 + buscarCliente.getCodigo() + "nombres" + buscarCliente.getNombres() + "****************************");
                }
                break;

            case 16:
                response.setContentType("text/html");
                out = response.getWriter();
                List<EntCliente> listaClientes = new NCliente().listarClientes();

                if (listaClientes == null || (listaClientes != null && listaClientes.size() <= 0)) {
                    out.println("<h1>no existen datos </h1>");
                } else {
                    out.println("<HTML>");
                    out.println("<HEAD><TITLE>Listar</TITLE></HEAD>");
                    out.println("<BODY>");
                    out.println("<div>");
                    out.println("   <table>");
                    out.println("       <tr>");
                    out.println("           <td>");
                    out.println("           Usuario");
                    out.println("           </td>");
                    out.println("           <td>");
                    out.println("           Clave");
                    out.println("           </td>");
                    out.println("       </tr>");
                    for (int i = 0; i < listaClientes.size(); i++) {
                        EntCliente clientes = listaClientes.get(i);
                        out.println("       <tr>");
                        out.println("       <td>");
                        out.println("");
                        out.println("       </td>");
                        out.println("       <td>");
                        out.println("");
                        out.println("       </td>");
                        out.println("       </tr>");
                    }
                    out.println("   </table>");
                    out.println("</div>");
                    out.println("</BODY></HTML>");
                    isResponse = true;
                }

                break;




        }

        if (isResponse == false) {
            try {
                request.getRequestDispatcher(urlRedireccion).forward(request, response);
            } catch (Exception e) {
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
